home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BCI NET 2
/
BCI NET 2.iso
/
archives
/
applications
/
patch
/
phonepak_25_3.lha
/
Messages2
/
DocsPhonePak_2.4.FCII.doc
(
.txt
)
< prev
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Final Write Document
|
1994-05-02
|
122.3 KB
|
1,739 lines
PHONEPAK VFX 2.4
April 27, 1994
I. INTRODUCTION
This addendum to the PhonePak VFX manual describes the changes that have been
made since version 1.0. It is an expanded replacement of the addendum that was
originally shipped with PhonePak 2.0.
II. PHONEPAK
VFX Control Panel
Three
buttons on the VFX Control Panel now perform an alternative operation when
either
Alt
key is pressed and held while clicking on the appropriate button. For the
Move
button, the alternative action is to move the files without making them "new"
in the destination mailbox. This is handy if you are simply performing
"housekeeping" as opposed to forwarding a message to another mailbox. For the
New
button, the alternative action is to present a requester allowing you to make
the selected files new or old. For example, to quickly make all the new files
in a mailbox old, simply click New, then Alt-New, then select the "Make Old"
option from the requester. For the
Play
button, the alternative action is to replay the current message. Formerly, you
had to activate the
Pause
button, then press the
Play
button in order to replay the current message.
Pressing the
Play
button now causes PhonePak to go on to the next message even when the
Pause
button is active.
The operations initiated by the
Send
and
Receive
buttons are now more automatic. Formerly, clicking on either of these buttons
while PhonePak was onhook would result in an error message. Now, PhonePak will
automatically go offhook if necessary. In addition, when a fax send or receive
has finished, a requester will appear asking if you want PhonePak to hang up.
Database
Two additional
phone number fields
have been added to PhonePak's database section. Pre-2.0 databases may be
loaded into PhonePak 2.0, and the additional phone number fields can be used.
However, the fields will not have labels, so you might find it preferable to
create a new database, taking advantage of the new
4-character labels
for the phone number fields. You can then import the records from the old
database into the new one. If you do this, you will notice another new
feature: PhonePak asks if you wish to
copy the QuickDial file
from the old database.
While we're on the subject of importing, an enhancement has been made to text
imports: When this option is selected, PhonePak will prompt you for the
field and record separator characters
. In previous versions, the linefeed character (ASCII 10) was used
automatically to separate both fields and records. This is also the default in
version 2.0, but an alternate character can be specified for each type of
separator, such as tab (9), comma (44), or space (32).
Fax Display Screen
The PhonePak program now
multitasks internally
when a fax is being rendered, meaning that menus and gadgets, especially the
Play
button,
will remain active. Fax rendering speed has increased dramatically, especially
for 2D faxes. The on-screen appearance of fine mode 2D faxes has been
improved, and the type of fax being displayed (std/fine; 1D/2D) is now
indicated in the fax display screen's title bar.
When the fax display screen's window is active, pressing
return
is now the keyboard equivalent of clicking the
Play
button on the VFX Control Panel; pressing the
spacebar
is now the keyboard equivalent of clicking the
Pause
button on the VFX Control Panel.
The
Flip
gadget in the fax display screen's title bar is now sticky; it will remain in
whatever state you choose as long as the screen remains open, allowing you to
easily view an inverted multi-page fax without having to repeatedly click the
gadget.
Operator
Although Operator is not used exclusively by the PhonePak program, PhonePak
provides the interface where most of the Operator strings are entered, so
enhancements to the language will be covered in this section.
Each of LineMan's line handler processes deal with one particular line.
Therefore, transfer strings may act upon that line only. As a result, t
he
<Local>
,
<Seize>
, and
<Offhook>
commands, when used in transfer strings, now default to the appropriate line
instead of automatically using line 1. Specifying any other line as an
argument to these commands will result in an error.
Operator now supports pulse dialing via the
<Tone 0>
command. The short form for this command is
<T0>
. To return to tone mode issue a
<T>
command.
New Operator Commands
<Inquire [n]>
Wait n seconds (
default
4
) for intermittent fax tone (CNG) generated by remote fax machines that wish to
automatically transmit a fax. Listening for the CNG tone prior to receiving a
fax confirms that there is a remote fax machine present. This command is used
internally by LineMan to implement the AUTOFAX feature.
<Receive
filename
>
Receive a fax using the given filename. If the file already exists and is an
IFF CAT file, the fax will be appended to the existing file. If the file is
not a CAT file, the command will fail. Files created by this command and all
files created by LineMan are CAT files.
Switchboard
PhonePak's Switchboard has gone through a major rework for version 2.0. One of
the most obvious changes is that the window is now
sizable and draggable
, and it can be scrolled horizontally as well as vertically. The blank mailbox
icons are gone, and the remaining
mailbox icons
can be grabbed like regular icons and moved to new locations in the window.
When the mouse button is released, the mailbox icon "snaps" to the nearest grid
position, making it simple to create an attractive layout that mimics the
underlying system routing.
PhonePak may now be started in hi-res
interlace
mode (640x400). To use this mode, either add a Tool Type of INTERLACE to
PhonePak's icon, or use
-i
as a command line option.
The primary reason for this option is to allow you to drag the Switchboard to
the bottom half of the screen. In version 2 you can even
leave the Switchboard open
! Simply double-click on a mailbox icon to open the mailbox, instead of using
the old shift-click method. The ability to double-click made one other change
necessary: When clicking on a mailbox icon to mark the mailbox in or out, you
must now hold the Alt key down. The help window for the Switchboard has been
updated to show these new mouse/keystroke operations, in case you have trouble
remembering. Finally, if you want the Switchboard to be opened on startup,
simply select
Project/Save Configuration
from PhonePak's main menu while the Switchboard is open.
If you want to leave the Switchboard window open, but prefer not to use
interlace mode, try clicking on the Switchboard's new
Zoom
gadget. This will shrink the window and move it so that it covers the
database area, which may be acceptable if you don't have too many mailboxes.
Once you have arranged the mailboxes and the Switchboard's size, location, and
scroll position to your liking, you can select
Window/Snapshot
from the menu bar to save the entire layout. Selecting
Window/Unsnapshot
from the menu bar will cause PhonePak to "forget" these settings, so the
window will open full-sized and the mailboxes will be listed in alphabetical
order the next time you open the Switchboard.
The
System/Set Local Access Code
menu item has been removed from the Switchboard's menu bar; the local access
code is now part of a line's configuration and can be set via LineMan's Line
Configuration window.
Message Forwarding
Many users have requested message forwarding, the ability to call a pager or
take some other action upon receiving a message in a mailbox, and PhonePak 2.0
has it! All you have to do is add a special forwarding-type item to the
scheduler, and it will be executed when a message is received, instead of being
executed at a particular time.
The simplest example of using this feature is to have PhonePak call your pager
when it receives a message. Open your mailbox, make sure that no phone numbers
are selected, and select
Scheduler/Add/Forwarding
from the menu bar. A requester will appear, asking for the group name, with
"Forwarding" as the default. Erase this text (Right Amiga-x) and click OK
(We'll explain why later). A second requester will appear, into which you
should enter an Operator string that will call your pager (e.g.,
<!><O><D>555-1234<C><W20><H>
). That's all there is to it! Now, whenever the new message count of your
mailbox increases, a forwarding liability flag will be set, and LineMan will
execute the forwarding item. The forwarding liability flag is cleared when the
item is successfully executed or when the new message count of your mailbox
decreases.
In version 1, if you tried to add an item to the schedule without having
selected a phone number, you would get an error message. As you can see in the
above example, you now get a requester into which you may enter a phone number
"
on the fly
." This works for normal schedule items as well as for forwarding items. The
other interesting thing about the above example is that we asked you to erase
the group name. Did you find this odd? We did so because otherwise, LineMan
would have executed the new ARexx script named Forwarding.PPak that has been
installed in your REXX: drawer! That's right, any schedule item can now call
an
ARexx script
, supplying the item's Operator string as an argument to the script! Of
course, the Operator string could actually contain whatever information you
want to pass to the script, since you control what the script will do.
A more sophisticated application of message forwarding involves using the
Forwarding.PPak
script described above. This script is designed to call the "raw" phone
number passed to it as an argument (e.g., <!>555-1234) and initiate remote
access, just as if you had called in and entered #51 from the Message Edit menu
while in your mailbox. The Forwarding.PPak script will only forward messages
if the mailbox is marked "out" via PhonePak's Switchboard. It is therefore not
necessary to delete the forwarding item if you are marked "in"; the script will
become dormant automatically. When you add your forwarding item (each mailbox
can have only one), the default group name is set to "Forwarding," making it
easy to use the Forwarding.PPak script.
Although it is not necessary to specify the ".PPak" extension in the group
name, doing so makes it clear that the group name is in fact an ARexx script.
If you use a group name such as "NightService", ARexx will look for a script
named "NightService" or "NightService.PPak", first in the current directory
(your mailbox), then in the directory assigned to REXX:.
See the "ARexx Control of LineMan" section below for more information on ARexx
scripts to be called by LineMan from the scheduler. Lastly, if you need to
change the group name of a schedule item or group of items, a
Regroup
menu item
has been added to the
Scheduler
menu.
Other PhonePak Changes
Setting print scaling to 0 via the
Fax/Print Scaling
menu enables automatic scaling, which will shrink the printed image as much as
50% in order to fit it on a single page. Changes to this setting can be made
permanent by selecting
Project/Save Configuration
from the menu bar.
Note: For best results when printing faxes, make sure your Prefs PrinterGfx
settings are correct. If Limit Type is set to Ignore, the various settings in
your Printer Prefs (Margins, Pitch, Paper Length, and Spacing) will affect
graphic dumps such as fax printouts. If Limit Type is set to Bounded, then the
Width and Height settings in PrinterGfx Prefs control graphic dumps. However,
PhonePak ignores the height limits of both the above Limit Types for
page-oriented printers such as HP_LaserJet. For continuous-paper printers such
as EpsonQ, height limits are only relevant if PhonePak's automatic scaling
option (described above) is in use. Limit Types of Absolute, Pixels, and
Multiply are not recommended for use with PhonePak. For most users, setting
Limit Type to Bounded, Width to 85, and Height to 110 will yield optimum
results.
Whenever PhonePak has been taken offhook by the PhonePak program (e.g. by
selecting
Dialer/Hook
from the menu bar), the alphabetic and numeric keys on the
keyboard
can be pressed to generate DTMF tones. This allows you to easily dial phone
numbers that are represented as words (555-FILM) and to navigate interactive
voice response systems like PhonePak without having to pick up your telephone
receiver. A few special keys on the keyboard should be noted: Q generates a
DTMF 7; Z generates a DTMF 9; Return and Enter generate a DTMF #; and Escape
generates a DTMF *.
Files in the
message list
may now be drag-selected by clicking and holding the left mouse button and
sliding the mouse pointer over the files that are to be selected/deselected.
Also, the message list now scrolls in realtime as the slider is manipulated.
There are two new menu items on the Mailbox menu,
Sort/Alphabetically
and
Sort/Chronologically
. These menu items allow you to choose how the message list is sorted, and the
selected menu item is saved as part of PhonePak's configuration (select
Project/Save Configuration
from the menu bar to save PhonePak's configuration).
Lastly, all of PhonePak's menus now remain active during audio playback,
although playback will be stopped automatically for those menu selections that
are incompatible with playback.
III. LINEMAN
Interface Changes
The first change most users will notice (under Workbench 2.0) is the presence
of
a new
gadget in LineMan's title bar. This is
the
New Messages
gadget, and the number that appears in the gadget indicates how many mailboxes
have new messages, eliminating the need for the asterisk that would appear in
version 1 when a message had been received. C
licking on the New Messages gadget calls up a list of all mailboxes that have
new messages, along with the mailboxes' new message counts. If you click on
one of these mailbox names, LineMan will automatically open that mailbox in
PhonePak and select the new messages, launching the PhonePak program if
necessary. LineMan has two new Tool Types available to support this feature:
PPAKARGS
, which specifies PhonePak's command line startup options (e.g., "PPAKARGS=-i
-dDemo"); and
PPAKPATH
, which specifies the path to PhonePak (e.g., "PPAKPATH=Work:PhonePak"). The
default path to PhonePak is PPak:.
While we're on the subject of Tool Types, LineMan's zoom position now respects
the
LEFTEDGE/TOPEDGE
Tool Types, for those of you who used these Tool Types only to find that
LineMan jumped to the upper left corner of the screen upon clicking its Zoom
gadget. Also, there is now a
FAILEDTRANSFER
Tool Type to allow the default Operator string that is dialed when a call
transfer fails (<F><W><F><W20>) to be modified. There is no command line
equivalent for this Tool Type.
LineMan now has
Distinctive Ring
(IdentaRing) support. Distinctive Ring is a service available from many phone
companies that allows your phone line to have several different phone numbers.
Each phone number has a unique ring pattern so that you can tell which number
the caller dialed. Note that this is not the same as having a second line,
because there can only be one call in progress at a time. There are several
potential advantages to using LineMan in combination with Distinctive Ring
service, including: Eliminating the need for LineMan's unavoidably awkward
AUTOFAX
feature by having a phone number dedicated to fax-only calls (see Fax Only
below); and
having business/personal or roommate A/roommate B phone numbers, each of which
can have a completely different line configuration.
LineMan's configuration window has changed substantially in order to support
Distinctive Ring service. There is now a
setup
gadget that allows you to cycle through three completely separate line
configurations or setups, each of which will be used in response to a different
ring pattern. The
MAIN
setup will be used whenever the ring pattern is not recognized, and it is the
only setup you should use if you do not have Distinctive Ring service. Each
setup can have its own
LINE NAME
, but only the main setup's line name will be displayed in the
LINE
gadget in LineMan's main window. Each setup also has its own answer count;
the
ANS
gadget in LineMan's main window shows the sum of the setups' answer counts.
The answer counts can be reset individually via the line configuration window,
or all at once via LineMan's main window. All of these answer counts are now
saved to disk, meaning that they will survive a reboot. The
LOCAL
gadget contains the setup's local access code. Local access code was formerly
part of a System's definition and was accessed from the System menu on the
Switchboard. In version 2 LineMan will only honor the local access code for
the first five seconds after the local phone is picked up. This helps
eliminate the possibility of inadvertently initiating local access mode.
The
RING PATTERN
is configured via a set of cycle gadgets which allow you to specify a ring
having up to three segments, each of which can be short or long. Due to
possible variations in the way your local phone company implements Distinctive
Ring service, it is a good idea to set all your
RINGS
to at least two. That way, if a partial ring comes in, LineMan will still
answer correctly since it uses the setup identified by the last complete ring.
The
SAVE
gadget should only be clicked when you have finished configuring all of the
setups -- it saves than all at once. Likewise, the
CANCEL
gadget abandons any changes you have made to any of the setups. The
COPY CONFIGURATION
gadget has been eliminated as a result of the changes to LineMan's
configuration window.
Although LineMan's default ring pattern analysis will work properly for most
users, if LineMan fails to recognize ring patterns correctly, there are two new
Tool Types available which modify the ring pattern analysis:
SHORTRINGLIMIT
, which specifies the maximum duration of a short ring in milliseconds; and
RINGRESETTIME
, which specifies the amount of time in milliseconds that LineMan should wait
after receiving a ring message before it decides that all ring segments have
been received and the ring pattern should be analyzed. In other words, this
number should be total duration of the longest ring segment plus any silence
that precedes it plus a little bit of slop. The silence preceding the first
ring segment doesn't count.
PPAKMONITOR
now reports the duration of rings to assist you in setting these Tool Types.
Note that neither of these Tool Types will have any effect unless at least one
of the alternate setups is active (a ring pattern and a system name is required
to make a setup active). This has been done so that, in the absence of an
alternate setup, LineMan will answer immediately after the end of a ring (as
most users have become accustomed to) instead of waiting for RINGRESETTIME.
Also, in version 2 LineMan's minimum ring duration has been lowered in order to
recognize ring segments as short as 250 milliseconds. Note, however, that
unless at least one of the alternate setups is active, each ring segment will
be considered one ring.
The
AUTOFAX
gadget now has a
FAX ONLY
setting. When a line is configured this way, LineMan will answer calls with a
fax tone and automatically receive resulting faxes into the initial mailbox.
Obviously, this severely limits LineMan's capabilities, but allows you to
receive faxes from callers who have trouble getting their fax machines to issue
the CNG tones that make AUTOFAX work. For the same reason, business users of
PhonePak might want to set LineMan to FAX ONLY mode after hours to reduce
problems with overnight fax reception.
Note: When AUTOFAX is turned on, LineMan listens to the line for about four
seconds after answering for the intermittent CNG tone that will often be issued
by remote fax machines. Note that we said "often," not "always." This is a
problem for more than a few PhonePak users, and indeed is a problem for owners
of many types of automatic fax switches, too. Often, a fax machine will only
issue CNG tones when it is making a call in automatic mode, i.e., as a result
of entering the phone number and pressing start; as opposed to pressing the
hook (speaker, hands free, etc.) button, dialing the number manually, and
pressing start when the call is answered. It all depends on how the fax
machine is designed. The bottom line is, if you have trouble receiving a
particular fax via AUTOFAX, tell the caller to press #8 when LineMan answers,
or temporarily set LineMan to FAX ONLY mode and try again. Of course, if the
PhonePak program is running and LineMan has not yet answered, you could also
receive the fax manually using the Receive button on the VFX Control Panel.
Call Handling
During the course of an incoming call, LineMan uses
a number of system messages, and in version 1, these messages had to be
located in the system's initial mailbox. For version 2, LineMan will look in
up to three different places for each system message. First it will look in
current mailbox; then in the initial mailbox for the system; and finally in the
directory assigned to
SYSMSG:
. This procedure increases versatility in several ways. For example, you can
now override a system message only while in a particular mailbox by placing a
special system message in that mailbox. Or, if you have several systems, you
can conserve disk space by combining all the system messages into one directory
and assigning SYSMSG: to that directory.
In the event that a required system message cannot be found, or if any other
fatal error
is encountered, LineMan is much friendlier than in version 1. First, it plays
a distinctive alarm tone at the caller before hanging up. Then, instead of
disabling the line, a detailed error message will be printed to LineMan's
console window (an AUTOCON window specification has been added to LineMan's
icon that will open a window in case of error output). Alternatively, if
LineMan is started from the command line, you can redirect this error output to
a file via AmigaDOS.
LineMan's interaction with callers has been improved in other ways, too.
Whenever a caller enters DTMF (Touch Tone) digits, the entry can now be
completed by pressing the
pound key
which causes LineMan to process the entry immediately instead of waiting for
the interdigit timeout. Formerly, the pound key would override the digits, and
LineMan would play an option menu. Beyond improving performance for "power
callers," this change means that commands can be stacked by separating them
with the pound key. Another handy feature for power callers is that pressing 1
(or 1#) during playback of the
Override.sys
message will abort playback and perform the pending call transfer.
Lastly, the beep at the end of a recording has been shortened to increase the
chances of the caller hearing the Message Edit menu before hanging up.
There is a new system message,
Goodbye.sys
, that will be played before LineMan hangs up if it detects a DTMF * or hits a
normal dead end such as a lack of caller input or a mailbox with 0 message
length and no default route. This system message is not required.
LineMan now has support for
temporary greetings
. Temporary greetings allow you to easily set up a special greeting, such as
when you go to lunch or will be away for a few days, and then revert to your
normal greeting upon returning. This feature is implemented as follows:
Whenever LineMan needs to play a mailbox greeting, a message in the mailbox
having an extension of
.tgrt
(Temporary GReeTing) will override the mailbox's regular greeting. Two options
have been added to the Message Editing menu to support this feature: 71, which
makes the newly recorded message into a temporary greeting; and 73, which
deletes a mailbox's temporary greeting. Both of these options require password
entry. Of course, a temporary greeting can also be created using the PhonePak
interface simply by adding the .tgrt extension to a message's filename.
T
here are two new Remote Update codes to support PhonePak's new
message forwarding
capability: 40, which disables forwarding; and 41, which enables forwarding.
Getting the Most out of Remote Access
The ability to manipulate messages remotely using LineMan's Remote Access menu
has been greatly expanded in version 2. Although the available commands are
printed on the PhonePak wallet cards, in LineMan's help window, and in the
PhonePak manual, no tutorial has been provided until now, causing many users to
run into problems when using Remote Access. In this section, we will describe
the new features as we explain how to use the Remote Access system.
Let's assume that you have created a mailbox for your messages, and that you
must press 1 from the initial mailbox to access your mailbox. If you want to
retrieve your new messages remotely, the first step is always to go to your
mailbox. In our
example, you must therefore press 1, which will start the greeting to your
mailbox. While the greeting is playing, press #51 to request new message
playback. Pressing the # key summons the Message Edit menu, but you do not
have to wait for
it to begin playing before pressing 51. This command, as well as 52 (play all
messages), 80 (mark new faxes for retrieval), and 66 (go to Remote Update menu)
have been added to the Message Edit menu in version 2 in order to streamline
the remote access process. All of these codes require entry of the mailbox
password in order to prevent unauthorized use.
Now that you have requested new message playback, LineMan will use the new
vocabulary system
to inform you of the number of new messages in your mailbox. You will then be
prompted for your password. If you have no new
messages, you can simply ignore this password prompt, and you will be returned
to your mailbox's greeting. This feature can help save time and keystrokes,
especially if you need to check several mailboxes during a phone call.
For our example, we will assume that there are new messages. Once you enter
the mailbox password, LineMan will begin to play back your new messages in
chronological order. Once the messages begin to play, you can take advantage
of PhonePak 2.0's ability to
rewind
and
fast forward
messages. Simply press
1 to rewind or 2 to fast forward. LineMan will jump backwards or forwards
approximately six seconds each time the appropriate key is pressed.
Note: 1 and 2 are the only numeric codes that are enabled when you are
reviewing messages. In order to perform any other action (delete, replay, mark
for retrieval)
, YOU MUST FIRST PRESS # TO SUMMON THE REMOTE ACCESS MENU (many users have
erroneously attempted to enter a Remote Access code during message playback).
Once you have selected an option from the Remote Access menu, message
playback will resume. In other words, if you are listening to a message you
want to delete, press #3. LineMan will delete the message and then go on to
the next one.
During Remote Access, a new voice message will be marked old only after
playback of the message has completed. This means that if you skip to the next
message (by pressing #2), the message will remain new. There is one exception
to this rule in PhonePak 2.0: If a message contains a fax, it will remain new
until it is successfully viewed, retrieved, or explicitly made old with the #70
command. Let's say you are in a hotel room, and there is a fax machine in the
lobby. You call your PhonePak, listen to your new messages, and discover that
there are new faxes, too. With PhonePak 2.0, all you have to do to retrieve
these faxes is go to the lobby, call PhonePak from the fax machine, enter your
mailbox, and press #80 during the greeting. This marks ALL of the new faxes in
your mailbox for retrieval. After your entry is confirmed with a double beep,
press *. When LineMan detects a *, it checks to see if there are any marked
faxes, and if there are, it will attempt to send them before ending the call.
If you run into a problem while receiving, don't worry: Faxes aren't marked
old until they are successfully retrieved. Simply call back in and repeat the
procedure! Also, you can mark faxes from as many mailboxes as you wish
(Pressing 0 from the Remote Access menu takes you back to the initial greeting,
from which you can get to other mailboxes)
, and retrieve them all at the end of the call .
In
version 1, it was not possible to find out when a particular message was
received. This made it difficult or impossible to identify faxes that didn't
have an attached voice message. With PhonePak 2.0, you can ask LineMan to play
the
time and datestamp
of the message you are listening to by pressing #7. We made this an on-demand
feature so that you wouldn't have to wait through the time and datestamp for
every message, since this information is not always important. When
you request timestamp playback, LineMan will fulfill your request, then resume
playback of the message from the beginning. You can then press 2 repeatedly to
advance to the point where you requested the timestamp, or you can press #2 to
go to
the next message.
IV. M
iscellaneous
The speed of
fax encoding
via both PPakFax and the PhonePak program's import facility has been
substantially improved.
PPakFax now respects the
paper format
setting in Preferences, instead of only generating U.S. Letter-sized pages
(the PhonePak VFX manual incorrectly stated that PPakFax could also generate
U.S. Legal-sized pages).
There are two new Tool Types available for the
PPakFax program:
CODING=1D|2D
(default=1D), which allows you to specify 2D (MR) fax compression as an
alternative to the 1D (MH) compression used in the original version of PPakFax
(for a discussion of the two formats, see page 110 of the PhonePak manual); and
FILENAME=filename
, which creates the fax using the given filename instead of the normal time and
date stamp. The filename given should NOT include a path specification. If a
file with the given name already exists, it will be overwritten.
Lastly, a military time value in the format HH:MM can optionally be specified
as the argument to the
SCHEDULE
Tool Type.
Some users ran into problems sending faxes they had received with PhonePak to
other fax machines. This typically occurred when they received the fax in 2D
mode and the machine they wanted to send to was only capable of 1D coding.
Faxes compressed with 2D coding also take much longer to display, and this
could be rather aggravating on unaccelerated machines. Therefore, there is a
new program in the PPakTools drawer called
Fax_1D_Only
that can be used on systems running Workbench 2.0. Double-clicking on the
Fax_1D_Only icon creates a PhonePak/FaxCoding environment variable and sets it
to 1D. With this environment variable set, all fax reception will be limited
to 1D coding. The system may be restored to its normal state by changing the
environment variable to 2D or by deleting it from the ENV: and ENVARC: drawers.
Another potential problem with sending faxes can occur if you are sending a
multi-page fax consisting of both fine and standard mode pages. Some fax
machines are unable to
change resolutions
between pages, so you will either have to send the fine pages separately from
the standard pages or convert all the pages to the same resolution. PhonePak
can receive mixed resolution faxes with no problem.
Since the original release of PhonePak VFX, we have documented several cases
where users' problems were tracked down to an improperly grounded computer.
These problems included background noise in recordings made from the phone line
and difficulty with fax communications. In addition, an ungrounded system
prevents PhonePak's interference limiting circuitry from functioning properly,
potentially in violation of FCC regulations. We would therefore like to stress
the importance of plugging your Amiga into a properly grounded outlet.
Another source of background hum or buzz in recordings made from the phone line
may have to do with the condition of the phone line itself. If recordings made
in local mode are free of noise, there may be an imbalance in the phone line
that can be fixed by your local phone company. If you experience noisy
recordings even in local mode, try moving the PhonePak board away from other
boards installed in your Amiga, or reverse the order of the boards. You might
also make sure that the phone lines and the PhonePak board are kept away from
potentially strong sources of interference, such as computer monitors.
V. AREXX CONTROL OF LINEMAN
Overview
Beginning with version 2.0 of PhonePak VFX, each line handler sub-process of
the LineMan program has an ARexx command port. The name of the port consists
of the word "LINEMAN" followed by an extension representing the line number
(e.g., the
first PhonePak board installed in your system can be controlled by sending
commands to the port named "LINEMAN.1"). At certain times when a line handler
will be busy for an extended period, such as during fax communication, it
closes its ARexx port since it will be unable to process ARexx commands. This
prevents your ARexx scripts from "hanging", but it means that you should not
blindly assume that a given port is present.
There are two modes in which LineMan can receive commands. The first, known as
"normal" mode, occurs when commands are issued and LineMan is not otherwise
occupied with the given line (i.e., processing a call).
The second, known as "callback" mode, occurs when your program receives a
message from LineMan, but before it replies to the message. LineMan can be set
up to send a message to your program at one or more points by using the ARexx
Host "hooks" available when you are configuring a system via PhonePak's
Switchboard. In callback mode, the program receiving the message from LineMan
is the only one that may issue commands to LineMan. Also, some commands, such
as REMOTEACCESS and SETLINE, are blocked when LineMan is in callback mode.
Consult the command reference below for further information.
The possibility exists that multiple
programs will try to send normal mode commands to a LineMan port
simultaneously, so two mechanisms are provided to prevent collisions in
addition to the callback mode restriction described above. First, whenever
LineMan receives an ARexx command to go offhook, it will only accept subsequent
commands for that line from the program that issued the offhook command. This
remains true until the line is returned to an onhook state. Second, a program
can send a SESSION command to LineMan. If this command executes successfully,
LineMan will refuse ARexx commands from any other program until the first
program issues a SESSION OFF command. This allows a program to control a line
even if that line is onhook. None of these restrictions, however, prevent
LineMan from attempting to answer an incoming call. If necessary, this can be
handled manually by using the SETLINE command.
Technical Note: LineMan identifies programs that send ARexx commands by their
task addresses. If your program terminates with a line offhook or a SESSION
command still in effect, it is very possible that a new task could have the
same address as your terminated task. Of course, it is not a good idea to
terminate your program when either of the above conditions is true. This note
simply serves to explain why it is occasionally possible to exit a script with
an open SESSION, and then successfully execute another script, apparently
bypassing the SESSION lock. This is also a warning that you should not count
on this behavior to manifest itself in any consistent way. Rest assured that
LineMan's SESSION/offhook protocol, which prevents your script
from being interrupted, works properly.
Callback Hooks
A second form of callback hook has been added to LineMan for version 2.0. It
is similar to the hook you can set up by selecting
Route/Set ARexx Route Host
from the PhonePak Switchboard's menu bar. This second hook is known as a menu
host, and it is set up by selecting
System/Set ARexx Menu Host
from the Switchboard's menu bar.
When a menu host has been configured, LineMan will send a message containing
information about the caller's input to the designated menu host port at the
conclusion of playback of each audio menu (Message Edit, Remote Access, etc.).
If the reply to the message has an RC of 0 and no result string, LineMan will
process the caller's selection normally. If the script returns an RC of 0
along wi
th a result string, LineMan will process the result string as if the caller had
entered it. If the script returns an RC of 1, LineMan will double-beep and
replay the menu, indicating that the script performed some action successfully.
Finally, if the script returns an RC of 2, LineMan will play Error.sys, and
then replay the menu, indicating that the caller's entry is not allowed.
The format of the message that LineMan sends is identical to the ROUTE message
it sends to an ARexx route host hook, except that the word ROUTE is replaced
with MESSAGEEDIT, REMOTEACCESS, FAXXESS, or REMOTEUPDATE. The ARexx menu host
can be used for such things as blocking certain built-in menu codes, remapping
built-in codes to a different number, or adding new codes.
There is also a special message that will be sent to ARexx Menu Hosts at the
end of a call. The format of this message is:
ENDCALL n code
, where
n
represents the line number, and
code
is one of the following:
NOLINE
- Lineman is onhook (probably hit an <H> in a transfer string)
PANIC
- Lineman hit a fatal error and is about to play panic tones
NOCALLER
- Lost control of caller due to local pickup or remote hangup
STAR
- Lineman detected DTMF * and is about to play Goodbye.sys
DEADEND
- Lineman hit a normal dead end and is about to play Goodbye.sys
The
ENDCALL
message is useful for interactive scripts that need to reset or perform special
processing when a call ends. You should always reply to a
PANIC
message immediately, as this means LineMan has encountered a serious error. If
you receive a
STAR
or
DEADEND
message, the caller is probably still on the line.
If you wish to inhibit the action that LineMan will take when you reply to the
ENDCALL
message, you can force the call to end by executing an
OPERATOR <H>
command prior to replying. Whenever you reply, the RC should normally be 0.
The only other valid RC is 1, which causes LineMan to double-beep before
proceeding. You should not supply a result string unless you wish to force
marked faxes to be transmitted, in which case the result string should be "*".
If an ARexx route host replies to a message from LineMan with an RC of 0 and no
secondary result code, LineMan will now play Error.sys and re-enter the current
mailbox instead of ending the call. This is a fairly common sequence of events
that formerly had to be handled by your script. Of course, you can still end
the call by returning a non-zero RC.
Whenever you add an ARexx route or menu host, a requester will appear asking if
you wish to append a line number extension to the port name. This capability
is critical in a multi-line environment if your script does not process a
message instantly. For example, let's say you have written a script that
implements a fax on demand system, and it takes control of the call if the
caller presses 8 during the initial mailbox greeting. Assuming you have set up
an ARexx route host in your initial mailbox called FAXONDEMAND and that you
have answered "yes" to the "Append line number extension?" requester, you would
then run two separate copies of your ARexx script: one that opened a port named
FAXONDEMAND.1 and one that opened a port named FAXONDEMAND.2. The first script
would only receive messages from line 1, and the second would only receive
messages from line 2, allowing both lines to be active simultaneously.
Script-Controlled Schedule Items
As described in the Message Forwarding section above, an ARexx script can be
specified in a schedule item's group name, and LineMan will call the script
using the Operator string as an argument instead of executing the Operator
string directly. Obviously, since you control what the ARexx script will do,
the Operator string can actually consist of whatever is meaningful to your
script. It could even be completely blank if your script is self-contained.
The information you supply upon exiting your script allows LineMan to determine
the disposition of the schedule item. If your script executes successfully,
simply terminate with an
exit
or
exit 0
instruction, and LineMan will consider the schedule item completed. If you
run into problems, things get a bit more complicated. An error code less than
zero means that you encountered a fatal error; LineMan will not attempt to
execute your script again. LineMan will interpret an error code that is
greater than zero as the number of minutes that should elapse before the script
is attempted again; this is considered to be a non-fatal error. For both fatal
and non-fatal errors
, you might wish to supply additional information to be displayed in PhonePak's
schedule listing. To do this, simply include a message up to 15 characters
long along with your error code, e.g.,
exit "10 'line busy' "
.
Commands
All commands, command keywords, and mailbox names must be specified in upper
case. If another ARexx session is in progress, the return code will be set to
98. If LineMan is busy, the return code will be set to 99. If LineMan does
not recognize
a command, the return code will be set to 100.
Note: Many of the commands described below are used in the example ARexx
scripts included with version 2. These scripts perform a number of useful
functions. For further information, refer to the scripts themselves, which
have been installed in your REXX: drawer and have an extension of ".ppak".
Name:
ADJNEWCOUNT
Format
ADJNEWCOUNT <MAILBOX> [<delta>]
Template:
ADJNEWCOUNT "MAILBOX/A,DELTA"
Purpose:
To adjust a mailbox's new message count.
RESULT:
The resulting new message count.
RC:
1 - Mailbox not found (make sure mailbox argument
is upper case)
Example:
ADJNEWCOUNT MASTER -1
Comments:
The PhonePak system keeps track of the number of new messages in a mailbox. One
of the uses of this variable is to determine which mailboxes to highlight on
PhonePak's Switchboard display when it is in mailbox status mode. The new
message count is verified whenever a mailbox is opened in the PhonePak program:
any file in the mailbox with a filenote of "New" is considered to be a new
file. PhonePak automatically manages the new message counts for all internal
operations. However, you must manually adjust a mailbox's new message count if
you use ARexx to record a
message or receive a fax, even though the filenote will automatically be set to
"New". In addition, if you move files into or out of a mailbox using AmigaDOS,
you should adjust
newcounts and/or filenotes as necessary.
Name:
ANSWER
Format:
ANSWER
Purpose:
To go offhook when a line is ringing.
RC:
-3 Procedure error (line isn't ringing?)
4 Line not available (line has already been
answered?)
Comments:
This command should be used when it is your intention to process an incoming
call. This is the only ARexx command that LineMan accepts when a line is
ringing. Likewise, the command will fail if the line is not ringing. The
purpose of this command
is to prevent a script from attempting to place an outgoing call when a line is
ringing. Note that a line is considered to be ringing both during the ring
itself as well as during the silent period between rings. This command is not
available from
callback mode.
Name:
CHANGEDIR
Format:
C
HANGEDIR <DIRECTORY>
Template:
CHANGEDIR
"DIRECTORY/A"
Purpose:
To change a line handler's current directory.
RC:
-2 I/O Error (Unable to lock given directory)
Comments:
This command is typically used in ARexx scripts that are called by the
scheduler. Although the ARexx script's current directory is automatically
changed to the mailbox that owns the schedule item, the script must manually
set a line's current directory prior to issuing any commands that may cause the
line to look for files in the current directory (e.g., OPERATOR).
Name:
INQUIRE
Format:
INQUIRE [HANGUP][FAXLIST [<number>]][CURRENTMSG]
Template:
INQUIRE "HANGUP/S, FAXLIST/K, CURRENTMSG/K"
Purpose:
To retrieve internal information from LineMan.
Comments:
The possibility exists, especially when in normal mode, that a remote hangup,
local hangup, or local pickup could occur during the processing of a call at a
time other than when you are executing a PLAYBACK or a RECORD command. You
should use the INQUIRE HANGUP command periodically to make sure that you do not
miss these call-terminating events. If one of these events has occurred, RC
will be 1. Otherwise, RC will be 0. A typical time to use this command would
be at the conclusion of some processing during which the caller is expected to
wait. Executing this command causes a line's internal hangup flag to be reset,
so you should execute this command at the beginning of your call in order to
initialize the flag. If the INQUIRE command is given by itself, HANGUP is the
default argument.
The second form of this command, INQUIRE FAXLIST n, allows you to extract the
full filenames of faxes marked via either the Faxxess or Remote Access menus,
where n is the ordinal number of the filename you want to extract. The default
is the first fax on the list. The filename is returned in the result string.
If the requested item does not exist, RC will be 1.
The third form of this command, INQUIRE CURRENTMSG, can be used in callback
mode after receiving an ARexx menu host message if you want to manipulate the
current voice/fax message in some way. The current message on the Message
Editing menu is the message just recorded; the current message on the Remote
Access menu is the message that was just played.
Name:
LAUNCH
Format:
LAUNCH [<MAILBOX>]
Purpose:
To process a call beginning with the given
mailbox. If a mailbox is not
specified,
the initial mailbox will be used.
RC:
-3 Procedure error
-2 I/O error
-1 Syntax error
1 Resource error
Example:
LAUNCH MASTER
Comments:
This command uses the system currently assigned to the line, but allows you to
start at a point other than the initial mailbox. The command will not return
until the end of the call. This command can cause LineMan to process an
outgoing call, or to
start a voicemail system after a line has been answered manually. This command
is not available from callback mode.
Name:
OPERATOR
Format:
OPERATOR <commands>
Purpose:
To provide access to PhonePak's Operator language.
RC:
-3 Procedure Error
-2 I/O Error
-1 Syntax Error
1 Resource Error
2 Local Pickup
4 Line not Available
5 Call Progress: No Dialtone
6 Call Progress: No Answer
7 Fax not Detected
8 Call Progress: Busy Signal
9 Quit command
Example:
OPERATOR <O><D>5551212<C>
Comments:
If you use the <Receive filename> command to receive a fax into a mailbox, you
should use the ADJNEWCOUNT command to increment that mailbox's new message
count. The filenote of the fax file will automatically be set to "New". If
the file
specified already exists and was created by LineMan, the fax will be appended
to the end of the file. This allows you to create VFX messages that combine
voice and fax.
Name:
PLAYBACK
Format:
PLAYBACK <filename> [<interdigit>][<timeout>]
Template:
PLAYBACK "FILENAME/A,INTERDIGIT,TIMEOUT"
Purpose:
To play a message and capture DTMF tones.
RESULT:
DTMF digits captured.
RC:
1 File not Found
2 I/O or Resource Error
3 Remote Hangup/Local Hangup/Local Pickup
Detected
4 DTMF * Detected
5 DTMF # Detected (only possible if no DTMF
digits detected)
6 LineMan Close Gadget Detected - LineMan is
terminating
Example:
PLAYBACK TESTFILE 2 3
Comments:
This command will play the given message file down the phone line. If the
caller begins to enter DTMF tones, playback will cease and the tones will be
captured. Up to sixteen tones can be captured in this manner. The interdigit
argument specifies how
long LineMan should wait for the next DTMF tone once a DTMF tone has been
detected. If a small number, such as 2 or 3, is used for this argument, the
caller must enter digits without any substantial delay between them. However,
if the caller must
enter many digits, such as a credit card number, it might be better to supply a
larger value, such as 10, as the interdigit argument. In this case, you should
instruct the caller to press the pound key (#) when all the digits have been
entered. Once a
DTMF tone has been detected, the function of the pound key is to abort the
interdigit timer. When used with a large value, the interdigit timer provides
a fail-safe function should the caller fail to press the pound key. The other
numeric argument in this
command, the timeout value, represents the silent period after the end of the
message during which this command should wait for an initial DTMF tone.
Providing this additional time, typically 2 or 3 seconds, allows the caller to
think about the message that has just been played before responding.
Name:
RECORD
Format:
RECORD <filename><duration>[NOCUTOFF][CUTOFF=<n>]
[COMPRESS][NOCOMPRESS]
Template:
RECORD "FILENAME/A,DURATION/A,NOCUTOFF/S,CUTOFF=/K,
C
OMPRESS/S,NOCOMPRESS/S"
Purpose:
To record a message.
RC:
2 I/O or Resource Error
3 Remote Hangup/Local Hangup/Local Pickup
Detected
5 DTMF # Detected
6 LineMan Close Gadget Detected - LineMan is
terminating
Example:
RECORD work:testfile 60
Comments:
Records a new message with the given filename. If the file already exists, it
will be overwritten. Normally, a recording will terminate after about 7
seconds of silence. Silence is detected by a special algorithm that attempts
to discriminate valid data from background noise. Use the NOCUTOFF switch to
force the recording procedure to ride through any extended silent passages.
Alternatively, use the CUTOFF keyword to specify the number of consecutive
blocks of silence that must occur before the
recording terminates. Each block is about 1.7 seconds in duration. The
COMPRESS and NOCOMPRESS switches are mutually exclusive; they are used to
override the default compression setting in the line's configuration. If the
message you record is to be stored in a mailbox, you should use the ADJNEWCOUNT
command to increment the new message count for that mailbox. The filenote of
message files created with
this command are automatically set to "New".
Name:
REMOTEACCESS
Format:
REMOTEACCESS [<MAILBOX>][<code>]
Purpose:
To process a call beginning with Remote Access in
a given mailbox. If no
mailbox is specified, the
initial mailbox is used.
RC:
-3 Procedure Error
-2 I/O Error
-1 Syntax Error
1 Resource Error
Example:
REMOTEACCESS MASTER 51
Comments:
This command is similar to the LAUNCH command, but instead of starting with the
given mailbox's greeting, LineMan will get the mailbox password from the caller
(if the mailbox is password protected), and initiate the Remote Access
procedure. This
command will not return until the end of the call, and it is not available from
callback mode. Note that the caller is not limited to Remote Access functions,
but can go back to the initial mailbox of the system assigned to the line and
move around at will, just as if this were a normal incoming call. This command
simply provides a different starting point. The <code> argument allows you to
specify an initial selection from the Remote Access menu as if the caller had
entered it.
Name:
SESSION
Format:
SESSION [OFF]
Purpose:
To toggle session status
Comments:
Whenever you use ARexx to go offhook, a LineMan ARexx port will not accept
commands from any other program until the line returns to an onhook state.
There are times, however, when you might want exclusive control over one of
LineMan's ARexx ports even when a line is onhook. The SESSION command provides
this capability. Once you have successfully executed a SESSION command, you
have exclusive access to that LineMan ARexx port until you execute a SESSION
OFF command. Note that if the line is offhook when you execute the SESSION OFF
command, you retain
exclusive access until the line is returned to an onhook state (i.e., exclusive
access while offhook cannot be overridden).
Name:
SETINITIALMB
Format:
SETINITIALMB [<MAILBOX>]
Purpose:
To set the initial mailbox.
RC:
1 - Mailbox not found
Comments:
This command allows you to temporarily set a different initial mailbox,
which is useful if you wish to modify the action of a 0 keypress from any
of LineMan's menus. If no mailbox is specified, the initial mailbox will be
restored to its original value. This command is only valid in callback
mode, and the initial mailbox will automatically be restored to its original
value at the end of the call.
Name:
SETLINE
Format:
SETLINE [SYSNAME=<name>]
[RINGS=<n>]
[
AUTOFAX=ON|O
FF|FAXONLY]
[MONITOR=ON|OFF]
[COMPRESS=ON|OFF]
[SEL=ON|OFF]
[RESETANS]
Template:
SETLINE "SYSNAME=/K,RINGS=/K,AUTOFAX=/K,
M
ONITOR=/K,COMPRESS=/K,SEL=/K,RESETANS/S"
Purpose:
To adjust line settings and save them to disk.
RESULT: The resulting line settings
RC:
1 - System not found (remainder of settings will
be accepted)
Example:
SETLINE 'SYSNAME=Sys 1' RINGS=3 AUTOFAX
Comments:
Any settings that are not specified will be left alone. ON is the default
value for all parameters that accept a value of ON or OFF. The SYSNAME
specification, but not the SYSNAME keyword, is case insensitive. The settings
available in this command are
equivalent to the settings available from LineMan's Configuration window. This
command is not available from callback mode.
Name:
SETMAILBOX
Format:
SETMAILBOX [<MAILBOX>][MSGLNG=<n>][IN|OUT]
Template: SETMAILBOX "MAILBOX, MSGLNG=/K, IN/S, OUT/S"
Purpose:
To adjust mailbox settings and save them to disk. If this command is
given without any arguments, information about the initial mailbox will be
returned.
RESULT:
Path to mailbox (including mailbox name), message
length (in seconds),
and whether mailbox is marked
in or out.
RC:
-1 Syntax error (mailbox name too long?)
1 Mailbox not found (make sure mailbox argument
is upper case)
Example:
SETMAILBOX MASTER (result: 'Work:Master' 30 IN)
Comments:
If you are processing a call manually, you can use this command to inquire
about PhonePak's mailbox data so that your program does not need to store
mailbox information separately.
Name:
SETXFER
Format:
SETXFER [<MAILBOX>][<Operator string>]
Template: SETXFER "MAILBOX, STRING"
Purpose:
To adjust a mailbox's transfer string and save it to disk. If this command is
given without any arguments, the initial mailbox's transfer string will be
returned.
RESULT:
Mailbox's transfer string.
RC:
-1 Syntax error (mailbox name too long?)
1 Mailbox not found (make sure mailbox argument
is upper case)
Example:
SETXFER MASTER ''
Comments:
Keeping this command separate from SETMAILBOX allows you to easily pass the
result back to LineMan as an OPERATOR command.
Name:
SPEAK
Format:
SPEAK <Command> <Argument> [FULL]
Template:
SP
EAK "COMMAND/A, ARGUMENT/A, FULL/S"
Command
Argument
DATE
Days since 1/1/78
TIME
Minutes since midnight
NUMBER
Signed 32-bit number
BITE
System sound bite number 0-n
USER
User sound bite number 0-31
Purpose:
To access the vocabulary system
Comments:
The DATE and TIME arguments are specified in a format that is easy for ARexx to
create. Use the FULL switch to include the year during date playback. Refer
to the chart that follows for a list of the system sound bites. LineMan will
keep track of 32 user sound bites. User sound bites are created by appending
IFF
8SVX files to the Vocabulary.sys file. Note that LineMan creates an index to
the Vocabulary.sys file on startup, so you should quit LineMan before making
any modifications to this file.
System Sound Bites:
0 - 19
0 - 19
20 - 90
20 - 27
AM
28
PM
29
SUN - SAT
30 - 36
JAN - DEC
37 - 48
HUNDRED
49
THOUSAND
50
MILLION
51
BILLION
52
NEGATIVE
53
DOLLARS
54
CENTS
55
NEWMESSAGES
56
BYTES
57
V. AREXX CONTROL OF PHONEPAK
The
PRINT
command now accepts an optional path and filename of the fax to print,
making it easier to implement automatic or Remote Access-based fax printing.
The following commands have beed added to PhonePak's ARexx interface:
Name:
DELETEMB
Format:
DELETEMB <MAILBOX>
Purpose:
To delete a mailbox.
RESULT:
The number of mailboxes remaining.
RC:
-2 - I/O Error (Can't write s:PhonePak.config)
1 - Resource Error (Access to shared data area denied)
2 - Mailbox not found
Comments:
If there are any files in the mailbox directory when this command is
executed, they will be left alone and the directory will not be deleted.
Name:
NEWMB
Format:
NEWMB <PATH>
<MAILBOX>
[<MESSAGE LENGTH>]
[<PASSWORD>]
[<TRANSFER STRING>]
Purpose:
To create a new mailbox.
RESULT:
T
he total number of mailboxes.
RC:
-2 - I/O error
-1 - Syntax error
1 - Resource error
2 - Mailbox name already exists
Example:
'NEWMB Ram Freddie 60 1234 <F><D>21'
Comments:
The requirements for this command's arguments are the same as for the
arguments in the New Mailbox requester. The mailbox will not be opened
automatically as it is when a mailbox is created via the PhonePak interface.
15